Referring to FIG. 1, a file system 2 of a computing environment is schematically represented as a tree of directories 4 and files 6. A directory 4 is a special type of file maintained by the file system 2 that contains a list of entries. A Finder 8 is an application of the computing environment that has a graphical user interface (GUI). The graphical user interface of the Finder 8 allows the user to view the directories 4 and files 6 in the file system 2. For example, the window of the Finder 8 typically displays icons and file names and can display other information about the files, such as file size, application, date last saved, etc. To a user, entries of a directory 4 appear as folders or files having the file names and other related information in the Finder 8. Actually, each entry of a directory 4 is a pointer pointing directly to a file 6 or to an entry in another directory 4.
Various processes in the computing environment can access and change directories 4 and files 6 of the file system 2. While the Finder 8 is open, for example, other processes of the computing environment (e.g., operators, tools, or applications) can manipulate the file system 2 (e.g., add, delete, or edit files 6) so that the directory 4 of files 6 displayed in the Finder 8 is not current. Maintaining an up-to-date display of directories 4 and files 6 of the file system 2 in the Finder 8 can be important. To keep the representation of the file system 2 up-to-date in the Finder 8, some methods for synchronizing the Finder 8 with changes to the directories 2 are used in the art.
One synchronizing method known in the art involves periodically polling a directory 4 at regular intervals to keeping the representation of the directory 4 up-to-date is the Finder 8. The periodic polling involves rereading all the data from the directory 4 and updating the display of the Finder 8 according to some schedule. Unfortunately, such polling is inefficient because intensive input and output operations (e.g., touching the disk of the hard drive and re-reading directories) must be performed even if no files 6 have been changed in the directory 4. Thus, the periodic polling may do unnecessary and intensive work. In addition, polling can be ineffective because the Finder 8 is not updated between intervals when an operator, tool, or application may need an up to date directory.
Another synchronizing method involves detecting specific triggers that indicate the user's current interests in files 6 of the directory 4 and possible changes to those files 6. This synchronizing method is similar to what is performed in Mac OS X Panther and earlier versions of Mac OS X. The triggers can be generated by opening the attached folder, closing the window of the attached folder, moving or resizing the window of the attached folder, placing items into the attached folder, or removing items from the attached folder. The triggers can trigger re-reading of a directory to update the Finder 8. This synchronizing method has the advantage of limiting the polling of the directory 4 and updating the Finder 8 only when the user indicates interest. Unfortunately, changes will not be noticed until there is user-action. The Finder 8 cannot notice a change in a directory 4 unless a trigger is assigned to a particular action, and other processes (users on a network, tools, or applications) lacking triggers may operate in the background of the computer system and may not trigger the update of the finder.
The subject matter of the present disclosure is directed to overcoming, or at least reducing the effects of, one or more of the problems set forth above.